package com.gopay.common.cps.manager.gp;

import java.io.Serializable;
import java.util.Map;

import com.gopay.common.base.manager.BaseManager;
import com.gopay.common.domain.cps.gp.CpsGpContractInfo;
import com.gopay.common.domain.cps.gp.CpsGpContractLog;

/**
 * P2P签约协议信息
 * 
 * @CpsGpContractInfoManager.java
 * @author lizheng
 * @2014-4-18 下午3:35:30 www.gopay.com.cn Inc.All rights reserved.
 */
public interface CpsGpContractInfoManager extends BaseManager<CpsGpContractInfo, Serializable> {
    /**
     * 获取P2P签约协议信息表序列号的下一个值
     * 
     * @return
     */
    public long getNextVal();

    /**
     * 根据签约号获取签约信息
     * 
     * @param contractNo
     * @return
     */
    public CpsGpContractInfo getByContractNo(String contractNo);

    /**
     * 是否已签约
     * @param trustAcct
     * @param excluCustId
     * @return
     */
    public boolean isSign(String trustAcct, String excluCustId);

    
    /**
     * 根据专属账户获取签约信息
     * @param excluAcctId
     * @return
     */
    public CpsGpContractInfo getByExcluAcct(String excluAcctId);
    
    /**
     * 更新签约信息
     * @param info
     */
    public void update(CpsGpContractInfo info);
    
    
    /**
     * 根据专属客户Id保存转账数据
     * @param map
     */
    public void saveAutoTransferByExcluCustId(Map<String,String> map);

    /**
     * 保存签约信息和日志
     * 
     * @param contractNo
     * @return
     */
    void saveGpContractInfoAndLog(CpsGpContractInfo info, CpsGpContractLog log);

}
